﻿/*
SINACOR - BMF&Bovespa
Arquivo: IDivergenciaAlocacao.cs
Criado em: 30-mar-2010 10:30:29
Arquiteto Responsável: WGeneroso.prg
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ComponentModel;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Security.Services;
using Sinacor.Infra.Common.Exceptions.FaultContracts;


namespace Sinacor.Servico.Bovespa.Alocacao.Service.ServiceContract 
{
	[ExceptionShielding]
    [ServiceContract(Namespace = "http://www.bovespa.com.br/Sinacor.Servico.Bovespa.Alocacao.Service.ServiceContract", SessionMode = SessionMode.Allowed, Name = "IDivergenciaAlocacao")]
	public interface IDivergenciaAlocacao 
	{
		/// <summary>
		/// Atualiza dados de ciência de divergência de alocação / realocação de negócios.
		/// </summary>
		/// <param name="request"></param>
        [OperationLog]
		[TransactionRequired]
        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(InvalidSessionFault))]
        [FaultContract(typeof(LicensingFault))]
        [FaultContract(typeof(AccessIsDeniedFault))]
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AtualizarCienciaDivergenciaAlocacao")]
		void AtualizarCienciaDivergenciaAlocacao(DataContract.Request.DivergenciaAlocacaoRequest request);

		/// <summary>
		/// Atualiza dados de ciência de divergência de alocação / realocação de negócios.
		/// </summary>
		/// <param name="request"></param>
        [OperationLog]
		[TransactionRequired]
		[FaultContract(typeof(BusinessFault))]
		[FaultContract(typeof(ValidationFault))]
		[FaultContract(typeof(GeneralFault))]
		[FaultContract(typeof(InvalidSessionFault))]
		[FaultContract(typeof(LicensingFault))]
		[FaultContract(typeof(AccessIsDeniedFault))]
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AtualizarCienciaDivergenciasAlocacao")]
		void AtualizarCienciaDivergenciasAlocacao(List<DataContract.Request.DivergenciaAlocacaoRequest> request);

		/// <summary>
		/// Consulta lista de divergencias de alocação/realocação de negócios conforme o
		/// filtro de pesquisa.
		/// </summary>
		/// <param name="request"></param>
        [OperationLog]
        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(InvalidSessionFault))]
        [FaultContract(typeof(LicensingFault))]
        [FaultContract(typeof(AccessIsDeniedFault))]
		[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ConsultarDivergenciasAlocacao")]
		List<DataContract.Response.DivergenciaAlocacaoResponse> ConsultarDivergenciasAlocacao(DataContract.Request.FiltroDivergenciaAlocacaoRequest request);
	}

}